/**
 * 队列的实现
*/
#pragma once
#include "myList.hpp"
namespace myQueue
{
    template <class T>
    class Queue
    {
    public:
        using queue_type = myList::List<T>;
    public:
        void push(const T& value)
        {
            _self.push_back(value);
        }
        void pop()
        {
            _self.pop_front();
        }
        int size()
        {
            return _self.size();
        }

        bool empty()
        {
            return _self.empty();
        }
        const T& front()
        {
            return *_self.begin();
        }
        const T& back()
        {
            return *(--_self.end());
        }

    private:
        queue_type _self;
    };
}